#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>

const char *myfile = "myfile";

int main()
{
    // const char* fstr = "hello fstr\n";
    const char* str = "hello str";

    printf("hello printf");
    fprintf(stdout, "hello fprintf");
    
    // write(1, str, strlen(str));
    fwrite(str, strlen(str)+1, 1, stdout);
    // sleep(5);
    close(1);

    return 0;
}

// int main()
// {
//     const char* fstr = "hello fstr\n";
//     const char* str = "hello str\n";
// 
//     printf("hello printf\n");
//     fprintf(stdout, "hello fprintf\n");
//     
//     write(1, str, strlen(str));
//     fwrite(fstr, strlen(str)+1, 1, stdout);
// 
//     fork();
// 
//     return 0;
// }

// int main()
// {
//     const char* fstr = "hello fstr";
//     const char* str = "hello str";

//     printf("hello printf");
//     fprintf(stdout, "hello fprintf");
    
//     write(1, str, strlen(str));
//     fwrite(fstr, strlen(str), 1, stdout);

//     return 0;
// }

// int main()
// {
//     printf("hello printf"); 
//     fflush(stdout);
//     _exit(0);
// 
//     return 0;
// }

// int main()
// {
//     int fd = open(myfile, O_CREAT|O_WRONLY|O_TRUNC, 0666);
//     if (fd < 0)
//     {
//         perror("open");
//         return 1;
//     }
//     // 重定向
//     dup2(fd, 1);
//     printf("hello Linux!\n");
//     printf("hello Linux!\n");
//     printf("hello Linux!\n");
//     printf("hello Linux!\n");
//
//     close(fd);
//
//     return 0;
// }

// int main()
// {
//     close(1);
//     int fd = open(myfile, O_CREAT | O_WRONLY | O_TRUNC, 0666);
//     if(fd< 0)
//     {
//         perror("open");
//         return 1;
//     }
//     //printf("fd: %d\n", fd);
//     const char *msg ="hello Linux\n";
//     int cnt = 5;
//     while(cnt)
//     {
//         write(1,msg,strlen(msg));
//         cnt--;
//     }

//     return 0;
// }

// int main()
// {
//     const char *fstr = "hello fwrite\n";
//     const char *str = "hello write\n";
//     // C
//     printf("hello printf\n");
//     fprintf(stdout, "hello fprintf\n");
//     fwrite(fstr, strlen(fstr), 1, stdout);
//     //操作提供的systemcall
//     write(1, str, strlen(str));
//
//     return 0;
// }
